package com.ling.team.view;

import com.ling.team.domain.Employee;
import com.ling.team.domain.Programmer;
import com.ling.team.service.NameListService;
import com.ling.team.service.TeamService;

public class TeamView {

    NameListService nameListService = new NameListService();
    TeamService teamService = new TeamService();
    public void enterMainMenu() {
        boolean flag = true;
        char key = 0;
        do {
            if (key != '1') {
                listAllEmployees();
            }
            System.out.print("1-团队列表  2-添加团队成员  3-删除团队成员 4-退出   请选择(1-4)：");
            key = TSUtility.readMenuSelection();
            System.out.println();
            switch (key) {
                case '1':
                    listTeam();
                    break;
                case '2':
                    addMember();
                    break;
                case '3':
                    deleteMember();
                    break;
                case '4':
                    System.out.print("确认是否退出(Y/N)：");
                    char yn = TSUtility.readConfirmSelection();
                    if (yn == 'Y')
                        flag = false;
                    break;
            }
        } while (flag);
    }

    // 显示所有的员工成员
    public void listAllEmployees() {
        System.out.println("\n--------------------------------开发团队调度软件-------------------------------\n");
        //遍历员工，输出员工信息
        System.out.println("ID\t姓名\t\t年龄\t工资\t\t职位\t\t状态\t\t奖金\t\t\t股票\t\t领用设备");
        // todo:需要自己实现的代码
        Employee[] allEmployees = nameListService.getAllEmployees();
        for (Employee k : allEmployees) {
            System.out.println(k);
        }
        System.out.println("----------------------------------------------------------------------------");
    }

    // 显示开发团队成员列表
    public void listTeam() {
        System.out.println("\n--------------------团队成员列表---------------------\n");

        // 获取团队列表，并输出（需要判断团队中有没有成员，如果没成员 给出提示）
        // 如果有成员，执行下面打印
        System.out.println("TID/ID\t姓名\t年龄\t工资\t职位\t奖金\t股票");
        // todo:需要自己实现的代码
        Programmer[] team = teamService.getTeam();
        if (team[0] == null) {
            System.out.println("当前团队中还没有成员，请添加成员！");
        }else{
            for (Programmer t : team){
                System.out.println(t);
            }
        }
        System.out.println("-----------------------------------------------------");
    }

    // 添加成员到团队
    public void addMember() {
        System.out.println("---------------------添加成员---------------------");
        System.out.print("请输入要添加的员工ID：");

        // 实现：添加成员到团队 的功能
        // todo:需要自己实现的代码
        int id2 = TSUtility.readInt();
        Employee employee = nameListService.getEmployee(id2);
        teamService.addMember(employee);
        // 按回车键继续...
        TSUtility.readReturn();
    }

    // 从团队中删除指定id的成员
    public void deleteMember() {
        System.out.println("---------------------删除成员---------------------");
        System.out.print("请输入要删除员工的TID：");
        int id = TSUtility.readInt();
        System.out.print("确认是否删除(Y/N)：");
        char yn = TSUtility.readConfirmSelection();
        if (yn == 'N')
            return;

        // 实现 删除团队成员的功能
        // todo:需要自己实现的代码
        teamService.removeMember(id);
        TSUtility.readReturn();
    }


}
